package edu.tgc.entity.hrm;

import java.util.Date;
import java.util.UUID;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import edu.tgc.entity.system.BaseAuditableEntity;
import edu.tgc.entity.system.SysUser;

/**
 * @author faith
 *         工作经历
 */
@Entity
public class HrmWorkHistory extends BaseAuditableEntity {

    private static final long serialVersionUID = -3460931684778995784L;
    // 部门
    protected String dept;
    protected String description;
    // 职务
    protected String duty;
    // 结束时间
    protected Date endDate;
    // 公司性质
    protected String feature;
    // 所属行业
    protected String industry;
    // 离职原因
    protected String leaving;
    // 单位名称
    protected String name;
    // 职务月薪
    protected Integer pay;
    // 证明人
    protected String reterence;
    // 公司规模
    protected String size;
    protected Integer sort = 1;
    // 开始时间
    protected Date startDate;
    // 联系电话
    protected String telphone;
    // 所属员工
    @JsonIgnoreProperties(value = { "createUser", "lastModifyUser", "createTime", "lastModifyTime", "dept", "description", "enabled", "ip", "username", "sort", "address", "dutyStatus", "education", "email", "hireDate", "idNo", "leaveDate", "major",
            "qq", "sex", "status", "telphone" })
    protected SysUser user;

    public HrmWorkHistory() {
    }

    public HrmWorkHistory(UUID id) {
        super(id);
    }

    @Column(length = 31)
    public String getDept() {
        return this.dept;
    }

    @Column(name = "description", length = 255)
    public String getDescription() {
        return this.description;
    }

    @Column(length = 31)
    public String getDuty() {
        return this.duty;
    }

    @Temporal(value = TemporalType.DATE)
    public Date getEndDate() {
        return this.endDate;
    }

    @Column(length = 31)
    public String getFeature() {
        return this.feature;
    }

    @Column(length = 31)
    public String getIndustry() {
        return this.industry;
    }

    @Column(length = 255)
    public String getLeaving() {
        return this.leaving;
    }

    @Column(length = 31)
    public String getName() {
        return this.name;
    }

    public Integer getPay() {
        return this.pay;
    }

    @Column(length = 31)
    public String getReterence() {
        return this.reterence;
    }

    @Column(length = 31)
    public String getSize() {
        return this.size;
    }

    @Column(name = "sort")
    public Integer getSort() {
        return this.sort;
    }

    @Temporal(value = TemporalType.DATE)
    public Date getStartDate() {
        return this.startDate;
    }

    @Column(length = 31)
    public String getTelphone() {
        return this.telphone;
    }

    @ManyToOne
    public SysUser getUser() {
        return this.user;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public void setFeature(String feature) {
        this.feature = feature;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public void setLeaving(String leaving) {
        this.leaving = leaving;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPay(Integer pay) {
        this.pay = pay;
    }

    public void setReterence(String reterence) {
        this.reterence = reterence;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public void setTelphone(String telphone) {
        this.telphone = telphone;
    }

    public void setUser(SysUser user) {
        this.user = user;
    }

}
